package co.com.pd.business.impl;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import co.com.pd.business.ReservaInt;
import co.com.pd.dao.impl.ReservaDaoImpl;
import co.com.pd.dtos.ReservaDto;
import co.com.pd.exception.DaoException;
/**
 * 
 * @author Usuario
 *Implrementacion de la clase reserva
 */
public class ReservaImpl implements ReservaInt {
/**
 * Crea el metodo para hacer la reserva de un dispositivo cuando el usuario lo requiera.
 */
	@Override
	public void reservarDispositivo(String serialDispositivo, String idUsuario) {
		
		ReservaDaoImpl reservaDaoImpl = new ReservaDaoImpl();
		ReservaDto reservaDto = new ReservaDto();
		 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 Date fecha = new Date ();
		 Calendar calendar = Calendar.getInstance();
	try {
    /**
    * Obtiene la fecha y la hora, en la que el usuario desea realizar la reserva del dispositivo.
    */
        String dato =	Integer.toString(calendar.get(Calendar.YEAR)) +"-"+Integer.toString(calendar.get(Calendar.MONTH))+"-"+Integer.toString(calendar.get(Calendar.DATE))
	+" "+Integer.toString(calendar.get(Calendar.HOUR)) +":"+Integer.toString(calendar.get(Calendar.MINUTE))+":"+Integer.toString(calendar.get(Calendar.SECOND))   ;

			fecha = format.parse(dato);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	/**
	 * setea los valores al detero para luefo realizar presistencia.
	 */
	    reservaDto.setFecha_solicitud(fecha);
		reservaDto.setFecha_reserva(fecha);
		reservaDto.setDispositivo(serialDispositivo);
		reservaDto.setUsuari_reserva(idUsuario);
		
		try {
			/**
			 * realiza la persistenacia de los datos para la reserva
			 */
			reservaDaoImpl.guardar(reservaDto);
		} catch (DaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
	}

}
